package com.ticket.sass.common.ticketserver.dto.input

import com.ticket.sass.common.ticketserver.dto.BaseInput
import java.math.BigDecimal


data class OrderTicketSubmitInput(
    /**
     * 订单号
     *
     * 云智（锁座接口 lockOrderId 字段）
     * 辰星（锁座接口 OrderCode 字段）
     * 鼎新（锁座接口 lock_flag 字段）
     */
    val orderNo: String,

    /**
     * 调用方自定义订单号
     *
     * 鼎新（partner_buy_ticket_id）
     */
    val outOrderNo: String,

    /**
     * 场次编码
     *
     * 凤凰云智（排期接口 scheduleId 字段）
     * 辰星（排期接口 FeatureAppNo 字段）
     * 鼎新（排期接口 cinePlayId 字段）
     */
    val sessionCode: String,

    /**
     * 场次ID
     *
     * 凤凰云智（排期接口 scheduleKey 字段）
     * 鼎新（排期接口 id 字段）
     * 其他（无）
     */
    val scheduleId: String,

    /**
     * 场次最后更新时间
     *
     * 只有鼎新使用
     */
    val scheduleUpdateTime: String,

    /**
     * 购票手机号
     */
    val cellphone: String,

    /**
     * 座位信息列表
     */
    val seatList: List<Seat>
) : BaseInput {

    data class Seat(
        /**
         * 座位 id
         *
         * 鼎新 seat_id
         */
        val id: String,

        /**
         * 座位编码（专资编码）
         */
        val code: String,

        /**
         * 票价（不含服务费）
         */
        val price: BigDecimal,

        /**
         * 影院手续费
         */
        val handleFee: BigDecimal,

        /**
         * 增值服务费
         */
        val serviceFee: BigDecimal,

        /**
         * 渠道服务费
         */
        val channelServiceFee: BigDecimal,
    )
}